昨天我們介紹了如何在SQLite根據sql創建database,至於要怎麼在flask使用這個database呢?今天將帶大家實作。
建立資料庫連線:在 Flask 應用程式中建立與 SQLite 資料庫的連線。你可以在 before_request
函式中建立連線,並在 teardown_request
函式中關閉連線:
SQLITE_DB_PATH = 'test.db'
SQLITE_DB_SCHEMA = 'test.sql'
def get_db():
db = getattr(g, '_database', None)
if db is None:
db = g._database = sqlite3.connect(SQLITE_DB_PATH)
# Enable foreign key check
db.execute("PRAGMA foreign_keys = ON")
return db
@app.teardown_appcontext
def close_db(exception):
db = getattr(g, '_database', None)
if db is not None:
db.close()
建立資料表和執行 SQL 查詢:你可以使用 SQLite 提供的 SQL 語法來建立資料表、插入資料和查詢資料。以下是一個示範:
@app.route('/create_table')
def create_table():
db = get_db()
cursor = db.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)')
db.commit()
return 'Table created successfully'
@app.route('/insert_data')
def insert_data():
db = get_db()
cursor = db.cursor()
cursor.execute('INSERT INTO users (name) VALUES (?)', ('John',))
db.commit()
return 'Data inserted successfully'
@app.route('/get_data')
def get_data():
db = get_db()
cursor = db.cursor()
cursor.execute('SELECT * FROM users')
data = cursor.fetchall()
password = db.execute(
'SELECT * FROM members'
).fetchall()
return str(password)
在這個示範中,我們建立了一個 users
資料表,插入了一筆資料並從資料庫中檢索所有的資料,此外可以透過網址get_data得到剛剛新增的資料,以及day-9
創立的member table。
我們可以發現將def insert_data
綁定post就能達成註冊功能,而登入認證只要透過sql的where比對即可,明天將教大家如何達成登入驗證以及使用flask login來達成登入狀態。